// Dialogvar
list list_one = ["Ziehen","Knoten","Abwischen","Schneuzen","Zupfen","Knabbern","Bürste","Spielen","Kuscheln","Flauschen","Schleife"];
string owner;
integer lock = FALSE;
integer chan;

vector startPos;   // Tail an der Position halten bevor Script gestartet wird

// Tail-Auschlag definitionen

doWag()
{
    integer amplitude=25;   // maximum ausschlag in Grad
    integer numOfWags=2;    // Wie oft Ausschlagen
    float steps=12;         // Schnellig keit des ausschlags (Höher ist langsamer)
    float moveBy=0;         // derzeitige Position des Ausschlags

       
    integer num=0;
    while(num<(steps*numOfWags))
    {
        
        moveBy=llSin(num/(steps/2)*PI)*amplitude;
        llSetRot(llEuler2Rot(DEG_TO_RAD*(startPos+<moveBy,0,0>)));
        num++;
    }
    llSetRot(llEuler2Rot(DEG_TO_RAD*(startPos)));
}


default
{


    state_entry()
    {
        
        startPos=(RAD_TO_DEG*llRot2Euler(llGetLocalRot()));
        llSetTimerEvent(1);
    }

    timer()
    {
        doWag();
        llSetTimerEvent(10+llFrand(10));
    }

    on_rez(integer n)
    {
        llResetScript();
    }

    attach(key a)
    {
        llResetScript();
    }

    state_entry()
    {
        chan = 8000 + (integer)llFrand(8000);
        owner = llKey2Name(llGetOwner());
        llListen(chan,"","","");
        llListen(1,"",llGetOwner(),"");
    }

    touch_start(integer total_number)
    {
        if(lock == FALSE){
            llDialog(llDetectedKey(0)," "+owner+"s Tail Menü",list_one,chan);
        } else {
                llInstantMessage(llDetectedKey(0),"sorry, menu by "+owner+" disabled");
        }
    }

    listen(integer c, string n, key i, string m)
    {
        if(m == "lock" && c != chan)
        {
            lock = TRUE;
            llOwnerSay("disabled");
        }
        if(m == "unlock" && c != chan)
        {
            lock = FALSE;
            llOwnerSay("enabled");
        }

        if(m == "Schleife")
        {
            llSay(0, " "+n + " bindet viele bunte Schleifen an " + owner + "s Teil.");
            // IDEE: SCHLEIFFEN DURSCHICHTIG MIT TIMER AN TAIL, BEI AKTION SICHTBAR FÜR X MINUTEN
        }

        if(m == "Bürste")
        {
            llSay(0, " "+n + " bürstet " + owner + "s Tail, bis er samtweich ist.");
        }
        if(m == "Knoten")
        {
            llSay(0, " "+n + " macht viele kleine Knoten in " + owner + "s Tail.");
        }
        if(m == "Abwischen")
        {
            llSay(0," "+n + " wischt mit " + owner + "s Tail über den Boden. So... Nun ist sauber hier...");
        }
        if(m == "Ziehen")
        {
            llSay(0," "+n + " zieht feste an " + owner + "s Tail und lacht sich kaputt.");
            // IDEE: LACHSOUND EINBAUEN
        }
        if(m == "Zupfen")
        {
            llSay(0," "+n + " zupft gelangweilt Knötchen " + owner + "s Tail.");
        }
        if(m == "Schneuzen")
        {
            llSay(0," "+n + " schneutzt sich die Nase an " + owner + "s Tail.");
        }
        if(m == "Knabbern")
        {
            llSay(0," "+n + " knabbert gedankenverloren an einer Strähne von" + owner + "s Tail herrum.");
        }
        if(m == "Spielen")
        {
            llSay(0," "+n + " Spielt etwas an " + owner + "s Tail, um sich etwas die Zeit zu vertreiben. xP");
        }
        if(m == "Kuscheln")
        {
            llSay(0," "+n + " kuschelt sich etwas in " + owner + "s Tail");
            // Sound Schnurren
        }
        if(m == "Flauschen")
        {
            llSay(0," "+n + " flauscht " + owner + "s Tail!");
            // sound schnurren
        }
    }
    
